package top.lv666.graduation_design_serve.service;

import top.lv666.graduation_design_serve.pojo.Attention;
import top.lv666.graduation_design_serve.pojo.Blog;
import top.lv666.graduation_design_serve.pojo.UserInfo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

public interface UserService {
    /**
     * @apiNote 查询用户信息根据传入的ID
     */
    UserInfo queryUserInfoById(String id);

    /**
     * @apiNote 我关注了谁
     */
    List<UserInfo> selectMyFoucs(Map<String, Object> map);

    /**
     * @apiNote 我关注了谁
     */
    List<UserInfo> selectMyFans(Map<String, Object> map);

    /**
     * @apiNote 关注某个用户
     */
    void focusOnUserById(Map<String, Object> map);

    /**
     * @apiNote 用户登录验证
     */
    String selectOneUser(Map<String, Object> map);

    /**
     * @apiNote 用户注册
     */
    void createOneUser(Map<String, Object> map);

    /**
     * @apiNote 查询用户是否被注册
     */
    boolean selectUserIsExits(String userName);

    /**
     * @apiNote 获取验证码
     */
    void getCode(Map<String, Object> map);

    /**
     * @apiNote 手机验证码
     */
    void getPhoneCode(Map<String, Object> map);

    /**
     * @apiNote 手机验证码登录
     */
    String phoneCodeLogin(Map<String, Object> map);

    /**
     * @apiNote 给一个ID获取他的用户信息
     */
    UserInfo queryUserInfo(HttpServletRequest request);

    /**
     * @apiNote 注销用户
     */
    void killerUser(Map<String, Object> map);

    /**
     * @apiNote 修改用户信息
     */
    void ModifyUserInfo(Map<String, Object> map);

    /**
     * @apiNote 查询高质量用户
     */
    List<Map<String, Object>> getHotUser(int page, int limit);

    /**
     * @apiNote 我赞了的博客
     */
    List<Blog> getLikeBlogById(Map<String, Object> map);
}

